[レポート] Improve performance and availability with AWS Global Accelerator #NET301 #reinvent
Youtube で公開されている re:Invent 2022 のセッションレポートです。
AWS Global Accelerator の仕組みや DDoS 対策について述べられるセッションです。Global Accelerator 構成に移行する方法を説明する事例紹介もあります。
セッション概要
タイトル
Improve performance and availability with AWS Global Accelerator (NET301)
概要
Learn how to take advantage of AWS Global Accelerator to improve global availability, performance, and security by moving application traffic onto the AWS global network. Global Accelerator’s automatic routing optimizations help keep your packet loss, jitter, and latency consistently low. In this session, learn about Okta’s onboarding journey with Global Accelerator and how they accelerated global scale and availability to support their customers.
レベル
300
登壇者
Ananda Rajagopal (he/him)
Principal PM-T, Global Accelerator and Internet Monitoring, AWS
セッションレポート
AWS Global Accelerator がどのような仕組みで通信で行っているのかの説明が勉強になりました。Global Accelerator を利用した場合における TCP 終端の違いや TCP のパラメータ調整が行わていることを知ることができました。
Okta 社の事例紹介では、Global Accelerator 構成に移行した際の時間経過に伴うトラフィック振り分けをどのような割合で行ったのか等の具体的な内容を知ることができた点もよかったです。
DevelopersIO には Global Accelerator に関する入門ブログもあります。合わせて見ていただくことで理解が深まると思います。
セッションのアジェンダは次の通りです。
- AWS Global Accelerator: Overview
- Simplifying multi-Region development (マルチリージョンへのデプロイの簡素化)
- Availability (可用性)
- DDoS protections (DDoS 保護)
- Custer case study: Okta
- Other new capabilities
- Development best practices
- Q&A
- 残念ながら Youtube では QA の時間はカットされていました
セッションサマリ
AWS Global Accelerator: Overview
- AWS Global Accelerator の概要
- 固定のグローバル IP アドレスとエニーキャストを組み合わせて提供するネットワークサービス
- CDN ではない(キャッシュサービスではない)
- インターネット経由の通信の代わりに AWS のグローバルネットワークを利用することで安定した高いパフォーマンスを提供
- 世界中のエッジロケーションから AWS のグローバルネットワークに入る
- マルチリージョン展開を簡略化できる
- DDoS 対策にもなる
- 固定のグローバル IP アドレスとエニーキャストを組み合わせて提供するネットワークサービス
- AWS のグローバルネットワークについて
- 冗長化された 400Gbps の帯域のネットワーク
- ファイバーパスはレイテンシーを最適化するために監査されている
- 各エッジの Point Of Presence (PoP) にはバックボーンへの独立したリンクが最低 2 本ある
- Global Accelerator の利用有無による TCP 終端の違い
- Global Accelerator ではエッジロケーションが TCP を終端することで接続時間を短縮している
- TCP スループットを最大 60% 改善
- TCP のパラメータを調整している
- スロースタートの無効化
- ジャンボフレームの利用
- 大きな受信ウィンドウサイズと TCP バッファ
- 大きな輻輳ウィンドウサイズ
- Global Accelerator の導入企業の紹介
- Global Accelerator は AWS や Amazon のサービスでも利用されている
Simplifying multi-Region development (マルチリージョンへのデプロイの簡素化)
- エンドポイントへのトラフィックフローを調整できる
- インスタンスをスケールアップす際などに、重みを 0 にしたり、ヘルスチェックを失敗させたりする方法でトラフィックを制御できる
- マルチリージョン環境で DNS を利用せずにエンドポイントのフェールオーバーができる
- DNS キャッシュの影響を受けないため、DNS を利用する場合より短い時間で切り替えできる
Availability (可用性)
- 99.995% の可用性
- インターネット経由の場合は複数のネットワークを経由するため、障害や遅延の影響を受けやすい
- Global Accelerator はエッジから AWS 上のアプリケーションまで安定している
- 99.995% と 99.95 の可用性を比較すると 年間約 500 分の追加の稼働時間がある
- 潜在的な障害に対応している
- Accelerator ごとに 2 つの Network Zone がある(下記画像)
- Network Zone は AZ の概念に似ている
- 1 つの Network Zone には 4 つの Cell があり、1 つの Cell には複数のホストがある
- Cell 内の 1 つのホスト障害は他のホストに影響を与えない
- シャーディングは Infrastructure を細かく分割するプロセス
- シャードを顧客に割り当てる
- "noisy neighber" の影響を少なくするため、割り当ては Cell を超えてシャッフルされる
- エニーキャストにより最も近い Edge PoP に障害があった場合でも他の Edge PoP にルーティングされる
- PoP が障害等により孤立するイベントが発生した場合の BGP の Route Advertisement と障害回復の説明
DDoS protections (DDoS 保護)
- Global Accelerator にはサービスの一部として組み込まれた DDoS 保護機能がある
- エニーキャストは DDoS 攻撃の抑制にもなる
- AWS Shield と併用して利用する(エッジロケーションで AWS Shield により対策)
- エンドポイントとしてプライベートサブネットを指定できるので、エンドポイントの直接公開を防げる
- Volumetric attacks と Protocol attacks から保護する
- SYN フラッド攻撃に対する保護である TCP SYN プロキシの紹介
- レイヤ 7 の DDoS 攻撃に対して Global Accelerator と AWS WAF で保護する例の紹介
- F5 のアプライアンス製品もある
セッション中で紹介されているサイトではありませんが、エニーキャストが DDoS 攻撃の効果抑制になることは次のサイトが分かりやすかったです。
JPRS 用語辞典| IP Anycast(アイピーエニーキャスト)
Custer case study: Okta
- Okta について説明
- Okta サービスの可用性は SRE チームの最優先事項だった
- Global Accelerator 導入のビフォア・アフターの説明
- 静的なパブリック IP アドレスを持つため顧客は限定されたアクセス許可リストを作成できる
- サービスを他リージョンに展開した場合でもフロントの IP アドレスは変わらない
- ISP 障害の対応の説明
- Global Accelerator 構成への移行方法の説明
- 新しいサービス用リソースを作成して DNS を用いた重みベースのルーティングを利用して移行した
- Global Accelerator を通過する各顧客のトラフィックを明示的に追跡できるようにするため
- 最初の 24 時間は 25%を Global Accelerator にルーティング
- 次の 24 時間では 40%を Global Accelerator にルーティング
- その後は 100%を Global Accelerator にルーティング
- 新しいサービス用リソースを作成して DNS を用いた重みベースのルーティングを利用して移行した
Other new capabilities
- 今年リリースした Global Accelerator の主要なアップデートを紹介
- ALB エンドポイント向けに IPv6 をサポート
- エンドポイントの追加・削除の高速化
- これまで UpdateEndPointGroup API でエンドポイントを更新していたが、新しく AddEndPoint と RemoveEndPoint を追加することでシンプルになり、API 実行時間を最大 50% 短縮できた
Development best practices
- ベストプラクティスを紹介
- Global Accelerator 経由と IGW 経由の両方のルートがある場合や、2 つの Global Accelerator が同じエンドポイントをターゲットにしていると発生する可能性のある Connection collision の回避方法
- Global Accelerator の Port override (ポートの上書き) 機能を利用する、ターゲットをレプリケーションして経路毎にターゲットを分ける、などのいくつかの方法がある
- キープアライブが有効でも TCP 接続がタイムアウトすることがあるため 340 秒以内に 1 バイト以上の接続を行う
- キープアライブ応答は Edge PoP から送信され、エンドポイントには中継されないため
- 送信元ポートが同じ場合の衝突を回避するため、NLB のクロスゾーン負荷分散を無効にする
- サブネット内に十分なアドレスを確保する(サブネット毎に少なくとも 1 つ)
- 可用性を最大化し、キャパシティを 2 倍にするため、Global Accelerator の両方の IP アドレスを使う
さいごに
Global Accelerator の仕組みを知ることができるセッションで勉強になりました。
セッション内では、インターネット上の通信が不安定なことを Ineternet Weather に影響されるという表現をしていて、そのような言い回しをすることをはじめて知りました。そういった発見があるのも楽しみの一つだと思います。
以上、このブログがどなたかのご参考になれば幸いです。